package pl.poznan.put.cs.idss.students.kingcart.core.model;

import java.awt.Point;
import java.awt.Rectangle;

import com.googlecode.javacv.cpp.opencv_core.CvRect;
import com.googlecode.javacv.cpp.opencv_core.IplImage;

/**
 * interfejs przerabiający ramkę która będzie śledzona. Wyodrębnienie
 * interesujacego fragmentu, etc.
 * 
 */
public interface Features {

	/**
	 * Przygotowuje ramkę, która bedzie śledzona
	 * 
	 * @param frame
	 *            - ramka
	 * @param importantArea
	 *            - obszar, który chcemy śledzić
	 * @return
	 */
	public void setFeatures(IplImage frame, Rectangle importantArea);

	public void setCurrentLocation(Point loc);

	public double similarityOfBoundBox(IplImage frame, CvRect rect);

	double rectDist(CvRect rect);

	CvRect getLastBoundBox();

	void setLastBoundBox(CvRect lastBoundBox);

	boolean isVeto(CvRect bestBoundBox);

	double similarity(IplImage frame, CvRect rect);

}
